package java6699.generic;

import java.time.LocalDate;

/**
 * @program: java_zzx
 * @description:
 * @author: zzx
 * @create: 2022-10-11 19:51
 **/
public class MaxMinDemo6699 {
    public static void main(String[] args) {
        //用String实例化自定义的泛型类MaxMinXXXX，练习计算一组字符串的最大和最小
        String[] input = new String[]{"1","2","3","4","1"};
        System.out.println("--------String实例化---------------");
        MaxMin6699<String> s1 = new MaxMin6699<>();
        System.out.println("最大："+s1.max6699(input));
        System.out.println("最小："+s1.min6699(input));

        //用Character实例化自定义的泛型类MaxMinXXXX，练习计算一组Character的最大和最小
        System.out.println("--------Character实例化---------------");
        MaxMin6699<Character> c = new MaxMin6699<>();
        Character[] c1 = new Character[]{'a','b','c','d'};
        System.out.println("最大"+c.max6699(c1));
        System.out.println("最小"+c.min6699(c1));

        System.out.println("------问题----------");
        //问题1：无法编译说明泛型类的泛型受到限制
        //问题2：含义：实例化的类型是可比较的，限定了必须自带compareTo方法的类才能编译成功
        //      作用：是一种安全机制，是一种书写规范，它和接口的作用有着一定的类似，都是在制定规则。
        //问题3：不能

        //用LocalDate实例化自定义的泛型类MaxMinXXXX，练习计算一组LocalDate的最大和最小
        // System.out.println("--------LocalDate实例化---------------");
        // MaxMin6699<LocalDate> l = new MaxMin6699<LocalDate>();
        // LocalDate ld = new LocalDate();
        // System.out.println("最大："+ l.max6699(ld));
        // System.out.println("最小："+ l.min6699(ld));

        //用Exception实例化自定义的泛型类MaxMinXXXX，练习计算一组Exception的最大和最小
        // System.out.println("--------Exception实例化---------------");
        // MaxMin6699<Exception> e = new MaxMin6699<Exception>();
        // Exception ec = new Exception();
        // System.out.println("最大："+e.max6699(ec));
        // System.out.println("最小："+e.min6699(ec));
    }
}
